home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
os2
/
pvm34b3.zip
/
pvm34b3
/
pvm3
/
src
/
global.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-08-08
|
9KB
|
284 lines
/* $Id: global.h,v 1.7 1997/06/25 22:08:44 pvmsrc Exp $ */
/*
* PVM version 3.4: Parallel Virtual Machine System
* University of Tennessee, Knoxville TN.
* Oak Ridge National Laboratory, Oak Ridge TN.
* Emory University, Atlanta GA.
* Authors: J. J. Dongarra, G. E. Fagg, M. Fischer
* G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
* P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
* (C) 1997 All Rights Reserved
*
* NOTICE
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby granted
* provided that the above copyright notice appear in all copies and
* that both the copyright notice and this permission notice appear in
* supporting documentation.
*
* Neither the Institutions (Emory University, Oak Ridge National
* Laboratory, and University of Tennessee) nor the Authors make any
* representations about the suitability of this software for any
* purpose. This software is provided ``as is'' without express or
* implied warranty.
*
* PVM version 3 was funded in part by the U.S. Department of Energy,
* the National Science Foundation and the State of Tennessee.
*/
/*
* global.h
*
* Generic includes.
*
$Log: global.h,v $
* Revision 1.7 1997/06/25 22:08:44 pvmsrc
* Markus adds his frigging name to the author list of
* every file he ever looked at...
*
* Revision 1.6 1997/04/09 14:37:53 pvmsrc
* PVM patches from the base 3.3.10 to 3.3.11 versions where applicable.
* Originals by Bob Manchek. Altered by Graham Fagg where required.
*
* Revision 1.5 1997/04/08 19:57:50 pvmsrc
* Promoted mbox static "classes" to public global "pvmmboxclasses".
* - so pvmd can spank mboxes in ddpro.c... :-Q
* - renamed everywhere, moved decl / extern to global.[ch].
*
* Revision 1.4 1997/03/06 20:56:26 pvmsrc
* add include host.h
*
* Revision 1.3 1997/01/28 19:27:55 pvmsrc
* New Copyright Notice & Authors.
*
* Revision 1.2 1996/10/24 20:37:02 pvmsrc
* Modified for New Tracing Facility:
* - added new PDMTRACE constant for tracer debug tracing...
* - moved in miscellaneous external declarations:
* * PVM Error Globals: char *pvm_errlist[], int pvm_nerr,
* int pvm_errno.
* * wait list: struct waitc *waitlist.
* * trace globals: struct Pvmtevdid pvmtevdidlist[],
* struct Pvmtevinfo pvmtevinfo[].
*
* Revision 1.1 1996/09/23 23:43:15 pvmsrc
* Initial revision
*
* Revision 1.21 1996/05/13 20:24:52 manchek/GEF
* changed DEFBINDIR to $HOME...
* release patch 11
*
* Revision 1.20 1995/11/02 16:00:37 manchek
* version change
*
* Revision 1.19 1995/09/05 19:28:49 manchek
* version change
*
* Revision 1.18 1995/07/24 18:24:19 manchek
* added TIDISHERE macro
*
* Revision 1.17 1995/05/17 16:07:30 manchek
* version 3.3.8
*
* Revision 1.16 1995/02/03 16:46:47 manchek
* version 3.3.7
*
* Revision 1.15 1994/12/21 21:27:34 manchek
* version 3.3.6
*
* Revision 1.14 1994/10/15 19:05:01 manchek
* version 3.3.5
*
* Revision 1.13 1994/09/02 15:20:38 manchek
* version 3.3.4
*
* Revision 1.12 1994/07/18 19:20:00 manchek
* version to 3.3.3
*
* Revision 1.11 1994/07/01 15:08:02 manchek
* version to 3.3.2
*
* Revision 1.10 1994/06/21 18:30:26 manchek
* to version 3.3.1
*
* Revision 1.9 1994/06/03 20:38:55 manchek
* oops
*
* Revision 1.8 1994/06/03 20:38:14 manchek
* version 3.3.0
*
* Revision 1.7 1993/12/20 15:42:26 manchek
* version change
*
* Revision 1.6 1993/11/30 15:49:14 manchek
* version change
*
* Revision 1.5 1993/10/27 17:32:16 manchek
* version change
*
* Revision 1.4 1993/10/12 14:44:31 manchek
* version change
*
* Revision 1.3 1993/09/23 20:53:50 manchek
* version change
*
* Revision 1.2 1993/09/22 18:59:46 manchek
* version change
*
* Revision 1.1 1993/08/30 23:26:47 manchek
* Initial revision
*
*/
/* UDPMAXLEN should be set to the largest UDP message length
your system can handle. */
#ifndef UDPMAXLEN
#if defined(IMA_CRAY) || defined(IMA_CRAY2)
#include <sys/tcp_config.h>
#define UDPMAXLEN UDPSENDSPACE/4 /* UDPSENDSPACE/2 whacks on some C-90s */
#endif
#endif /*!UDPMAXLEN*/
/* 16 is the number of bytes taken by align_me, which is used to keep
reference information to a da_buf.
By subtracting this number from UDPMAXLEN, we can assure ourselves
that da_bufs do not spill over a few bytes onto the next page of
memory. Should keep us from *always* page faulting on a send
*/
#define KEEPONPAGE 16
#ifndef UDPMAXLEN
#define UDPMAXLEN (4096 - KEEPONPAGE) /* generic max fragment length */
#endif
/*DocThis*/
/*
* TID definitions
*
* 3 2 1
* 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
* +---------------+---------------+---------------+---------------+
* | | | | |
* +---------------+---------------+---------------+---------------+
* S G \__________ H ________/ \_______________ L _______________/
*/
/*EndDocThis*/
#define TIDHOST 0x3ffc0000
#define TIDLOCAL 0x0003ffff
#define TIDGID 0x40000000
#define TIDPVMD 0x80000000
#define TIDISTASK(x) (!((x)&(TIDGID|TIDPVMD)) && ((x)&TIDLOCAL))
#define TIDISPVMD(x) (((x)&(TIDGID|TIDPVMD)) == TIDPVMD && !((x)&TIDLOCAL))
#define TIDISMCA(x) (((x)&(TIDGID|TIDPVMD)) == TIDGID)
#define TIDISHERE(x,me) (!((x) & TIDHOST) || !(((x) ^ (me)) & TIDHOST))
/*
* Message header
*/
#define MSGHDRLEN 32
/*DocThis*/
/*
* 0 1 2 3
* +---------------+---------------+---------------+---------------+
* 0| data signature |
* +---------------------------------------------------------------+
* 4| tag |
* +---------------------------------------------------------------+
* 8| context |
* +---------------------------------------------------------------+
* 12| sequence number |
* +---------------------------------------------------------------+
* 16| wait id |
* +---------------------------------------------------------------+
* 20| checksum |
* +---------------------------------------------------------------+
* 24| reserved |
* +---------------------------------------------------------------+
* 28| reserved |
* +---------------------------------------------------------------+
*/
/*EndDocThis*/
/* frag and packet flags */
#define FFSOM 1 /* first frag of msg */
#define FFEOM 2 /* final frag of msg */
#define FFMCA 8 /* This is a multicast message */
#define FFMCAWH 16 /* Output should write the header of a mcast msg */
#ifdef IMA_OS2
#define DEFBINDIR "$HOME/pvm3/bin/$PVM_ARCH;$PVM_ROOT/bin/$PVM_ARCH"
#endif
#ifndef DEFBINDIR
#define DEFBINDIR "$HOME/pvm3/bin/$PVM_ARCH:$PVM_ROOT/bin/$PVM_ARCH"
#endif
#ifndef DEFDEBUGGER
#define DEFDEBUGGER "$PVM_ROOT/lib/debugger"
#endif
#ifndef PVMDFILE
#define PVMDFILE "lib/pvmd"
#endif
#ifndef PVMDPATH
#define PVMDPATH "$PVM_ROOT/lib/pvmd"
#endif
/* debug mask for pvmd and libpvm */
#define PDMPACKET 0x00001 /* packet tracing */
#define PDMMESSAGE 0x00002 /* message tracing */
#define PDMTASK 0x00004 /* task state */
#define PDMSTARTUP 0x00008 /* slave pvmd startup */
#define PDMHOST 0x00010 /* host table updates */
#define PDMSELECT 0x00020 /* select loop/fd set stuff */
#define PDMNET 0x00040 /* IP network stuff */
#define PDMNODE 0x00080 /* multiprocessor control */
#define PDMSCHED 0x00100 /* resource manager tasks stuff */
#define PDMAPPL 0x00200 /* application (scrapped msgs/stuff) */
#define PDMWAITC 0x00400 /* wait contexts */
#define PDMMEM 0x00800 /* shared memory */
#define PDMSEM 0x01000 /* semaphores */
#define PDMLOCK 0x02000 /* locks */
#define PDMROUTE 0x04000 /* message routing */
#define PDMMBOX 0x08000 /* message mailbox */
#define PDMTRACE 0x10000 /* tracer tracing */
#define PDMMCA 0x20000 /* multicast tracking */
/* General PVM Globals Declarations */
extern char *pvm_errlist[]; /* error messages for -pvm_errno */
extern int pvm_nerr; /* exported num of errors */
extern int pvm_errno; /* last err in PVM API funct */
extern struct waitc *waitlist; /* wait list */
extern struct pvmmclass *pvmmboxclasses; /* the mbox database */
/* General Trace Globals Declarations */
extern struct Pvmtevdid pvmtevdidlist[];
extern struct Pvmtevinfo pvmtevinfo[];